
2024 - 2025
Los datos espaciales, (datos geográficos o datos georreferenciados), son aquellos que contienen información de una localización o área geográfica de la superficie anclados al espacio.
La cartografía, el arte de la cartografía, es una habilidad ancestral que implica comunicación, atención al detalle y un componente creativo.
Un mapa cuidadosamente elaborado puede ser la mejor manera de comunicar los resultados de su trabajo, pero un diseño deficiente puede causar una mala impresión.
Entre los problemas de diseño más comunes se incluyen: - la ubicación - el tamaño - la legibilidad deficientes del texto - selección descuidada de colores (guía de estilos)
Los mapas de aspecto amateur pueden dificultar la comprensión de información importante por parte del público y debilitar la presentación de una investigación de datos profesional.
Los mapas se han utilizado durante miles de años para una amplia variedad de propósitos. Algunos ejemplos históricos incluyen mapas de edificios y propiedad de la tierra en la antigua dinastía babilónica, hace más de 3000 años, y el mapamundi de Ptolomeo en su obra maestra , Geografía, hace casi 2000 años.
El primer análisis de datos espaciales fue realizado por el médico John Snow en 1854.


Construyó un famoso mapa que mostraba las muertes causadas por un brote de cólera.
Se detectarón 127 muertes en 3 días
Se ubicaban en el barrio del Soho de Londres
Se posicionaron las bombas de agua del área
Descubrió que había un agrupamiento significativo de muertes alrededor de una determinada bomba, y al quitar la manija de la bomba se detuvo el brote.


El análisis espacial de Snow es considerado el antecedente conocido más antiguo de la ciencia de datos, porque:
Se puede crear un modelo espacial directamente a partir de los datos
El problema solo se resolvió cuando la evidencia basada en datos se combinó con un modelo plausible que explicaba el fenómeno físico.
Tip
El área que se encarga de estudiar y analizar los datos espaciales es la estadística espacial o la estadística para datos espaciales.
Debido a que los datos espaciales surgen en múltiples campos y aplicaciones, hay una gran variedad de tipos de datos, estructuras y escenarios espaciales .
En 1993, N.A.C Cressie clasificó los datos geospaciales, basado en la naturaleza del dominio espacial, de la siguiente forma:
A continuación vamos a representar la localización de los inmuebles vendidos por idealista en Barcelona durante el mes de diciembre de 2018.
En una representación de geodatos o geostadística es importante las siguientes cuestiones:
Las coordendadas
El marco o contexto espacial
Conocimiento del sistema de referencia de coordenadas (Coordinate reference system (CRS)) en las que están georreferenciadas o proyectadas las coordenadas
Formato de los datos en los que se están trabajando: vector o raster.
Cambiamos el sistema de referencia de coordenadas al sistema de referencia (CRS) Europeo.
Generamos el mapa estático para poder representar nuestra información en él.
Warning
El sistema de referencias (CRS) de las coordenadas ha de coincidir con el de los mapas sino no geolocaliza correctamente el punto buscado.
Barcelona <- mapSpain::esp_get_munic(munic = "^Barcelona$") |>
sf::st_transform(25830)
# descara imagen de un de mapa estático de las carreteas de Madrid
tile <- maptiles::get_tiles(BCN, provider = "Esri.WorldStreetMap", zoom = 10, crop = TRUE)
# tile <- esp_getTiles(Barcelona, "IGNBase.Gris", zoommin = 3, verbose = FALSE)Cambiamos el sistema de referencia de coordenadas al sistema de referencia (CRS) Europeo.
# 1. Crear GeoDataFrame desde DataFrame (suponiendo que tienes 'LATITUDE' y 'LONGITUDE')
# Nota: en Python 'LONGITUDE' es x, 'LATITUDE' es y
gdf = gpd.GeoDataFrame(pyBCN, geometry = gpd.points_from_xy(pyBCN['LONGITUDE'], pyBCN['LATITUDE']), crs = "EPSG:4326") # primero en WGS84
# 2. Reproyectar a EPSG:25830
gdf_utm = gdf.to_crs(epsg = 25830)Generamos el mapa estático para poder representar nuestra información en él.
Podemos buscar el boundary box en la siguiente url: http://bboxfinder.com/
# 4. Plot con mapa base (tiles tipo Esri.WorldStreetMap)
fig, ax = plt.subplots(figsize = (8, 8))
# Plot puntos
gdf_utm.plot(ax = ax, color = 'blue', markersize = 1, alpha = 0.3)
# Añadir tiles (contextily necesita CRS compatible, normalmente 3857)
# Convertir a 3857 para el tile
gdf_webmerc = gdf_utm.to_crs(epsg = 3857)
ax = gdf_webmerc.plot(ax = ax, color = 'blue', markersize = 1, alpha = 0.3)
# Añadir fondo tipo Esri (o CartoDB, OSM, etc.)
ctx.add_basemap(ax, source = ctx.providers.Esri.WorldStreetMap)

Los CRS permiten identificar con exactitud la posición de los datos sobre el globo terráqueo.
Tip
Cuando se trabaja con datos espaciales procedentes de distintas fuentes de información es necesario comprobar que las coordenadas correspondientes a dichos datos se encuentran definidas en el mismo CRS.
Tip
Esto se consigue transformándolas (o proyectándolas) a un CRS común.
A continuación se muestra un mapa mundial con la representación en puntos (rojos) de los puertos que existen.
¿Que podemos ver en el gráfico?
Los tipos de CRS que existen son los siguientes:
Geográficos: aquellos en los que los parámetros empleados para localizar una posición espacial son:
Proyectados: permiten reducir la superficie de la esfera terrestre (3D) a un sistema cartesiano (2D).
Seguimos con el ejemplo de los puertos marítimos y proyectamos los puertos en el mismo CRS que el mapamundi utilizando la proyección de Robinson1 (la proyección cartográfica más popular para mapamundis)
Seguimos con el ejemplo de los puertos marítimos y proyectamos los puertos en el mismo CRS que el mapamundi utilizando la proyección de Robinson1 (la proyección cartográfica más popular para mapamundis)
R packages
El paquete crsuggest facilita la elección de la proyección más conveniente, al sugerir transformaciones de sistemas de referencia de coordenadas adecuadas para conjuntos de datos espaciales. Devuelve un marco de datos con códigos CRS que se pueden utilizar para proyectos de transformación y mapeo CRS.

En el ámbito del análisis espacial los datos espaciales pueden tener formato vector (o datos vectoriales) o formato raster (raster o rasterizados o mapa de bits).
Los datos vectoriales pueden representar tres tipos distintos de entidades: puntos, líneas y polígonos, y, quizás, su característica más importante es que cada punto, línea o polígono puede tener una tabla de atributos asociados.
Los datos raster, son una malla (una matriz) donde cada celda (o píxel) tiene un tamaño similar y un valor específico.
Cuando se tiene una imagen en color, el raster está compuesto por 3 matrices sobrepuestas, cada una con el valor del color primario correspondiente.
Cuando se utilizan imágenes de satélite u otros sensores cada archivo puede contener hasta cientos de matrices que representan distintos rangos de lo observado.
Este modelo de datos está basado en puntos georreferenciados. Los puntos, por ejemplo, representan localizaciones específicas.
Los puntos también pueden estar conectados entre sí, de manera que formen geometrías más complejas, como líneas y polígonos. El río Tajo está representado como una línea (tajo, sucesión de puntos unidos entre sí) y la ciudad de Toledo como un polígono (toledo, línea de puntos cerrada formando un espacio continuo).
Las extensiones más habituales de los archivos que contienen datos de vectores son las siguientes:
| Tipo | Extensión |
|---|---|
| Shapefile | .shp, .shx, .dbf |
| GeoPackage vector | .gpkg |
| GeoJson | .geojson |
| GPX | .gpx |
| Geography Markup Language | .gml |
| Keyhole Markup Language | .kml |
| Otros | .csv, .txt, xlsx |
R packages
ESRI Shapefile surgió como uno de los primeros formatos de intercambio de datos geográficos y en la actualidad es, quizá, el formato más empleado. Sin embargo, tiene una serie de limitaciones: es un formato multiarchivo y el CRS es opcional.
Los datos raster son datos proporcionados en una rejilla de píxeles (regulares o no) denominada matriz.
El caso más popular de un raster es una fotografía. La imagen se representa como una serie de celdas, determinadas por la resolución de la imagen (el tamaño del píxel, 5x5 (regular) y 10x10 (irregular)) y el valor del píxel (RGB –red, green, blue–) que determina el color que presenta cada uno de estos píxeles.
En el ámbito de los datos espaciales, un archivo raster está formado por una malla de píxeles georreferenciada.
Las extensiones más habituales de los archivos que contienen datos raster son las siguientes:
| Tipo | Extensión |
|---|---|
| ASCII Grid | .asc |
| GeoTIFF | .tif, .tiff |
| Enhanced Compression Wavelet | .ecw |
Como ejemplo, vamos a cargar la base de datos de nueva zelanda.
Para poder seguir con la sesión de hoy, necesitaremos instalar el paquete CDR. Para ello deberemos de seguir las siguientes indicaciones:
Los mapas estáticos son el tipo de resultado visual más común de la geocomputación. Suelen almacenarse en formatos estándar, como .png y .pdf para salidas gráficas ráster y vectoriales, respectivamente.
La función genérica plot() suele ser la forma más rápida de crear mapas estáticos a partir de objetos espaciales vectoriales y ráster por su simplicidad y la velocidad.
tmap es un paquete de creación de mapas potente y flexible con valores predeterminados.
Su sintaxis concisa permite crear mapas atractivos con un mínimo de código (muy similar a ggplot2). Ofrece la posibilidad de generar mapas estáticos e interactivos utilizando el mismo código mediante tmap_mode().



Ver https://r.geocompx.org/adv-map para saber mas.
=======Ver https://r.geocompx.org/adv-map para saber mas.
>>>>>>> Stashed changes =======Ver https://r.geocompx.org/adv-map para saber mas.
>>>>>>> Stashed changesConcretamente, se representa la distribución de la renta neta per cápita (renta_municipio_data) por municipio (municipios) en España en el año 2019.
El primer paso será integrar los ficheros renta_municipio-data y municipios, los cuales deben tener un campo en común (codigo_ine), para unir.
El siguiente paso es la representación gráfica de estos datos en el mapa.
Podemos ver que es un mapa temático de coropletas. Un gráfico de coropletas es una visualización sencilla de cómo varía la distribunción de una variable.
Si visualizamos el contenido del objeto munis_renta pueden verse una serie de elementos gráficos característicos de los objetos espaciales:
Simple feature collection with 3 features and 4 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -3.140179 ymin: 36.73817 xmax: -2.741701 ymax: 37.24562
Geodetic CRS: ETRS89
name cpro cmun 2019 geom
1 Abla 04 001 10192 MULTIPOLYGON (((-2.775594 3...
2 Abrucena 04 002 10021 MULTIPOLYGON (((-2.787566 3...
3 Adra 04 003 8192 MULTIPOLYGON (((-3.051988 3...
A veces, cuando se crea un mapa de coropletas la información puede aparecer distorsionada.
Por ello, para la correcta visualización de los datos que favorezca una interpretación realista es necesario tomar una serie de decisiones:
El número de intervalos (cortes o límites de intervalos) en caso de distribución por intervalos.
La escala de color a utilizar.
El tratamiento de los valores perdidos.
Los mapas de coropletas muestran la distribución espacial de una variable cuyos valores se dividen en clases o intervalos a los cuales se les aplica un esquema de colores, también llamado paleta, dónde a cada clase le corresponde un color de la paleta.
Existen muchas formas para agrupar los valores de una variable en clases pero el método de Fisher-Jenks es el más popular en los mapas temáticos y en especial, en los de coropletas.
R packages
El método de agrupación de datos de Fisher-Jenks utiliza un algoritmo no lineal para agrupar observaciones de modo que se maximice la homogeneidad dentro del grupo y la heterogeneidad entre los mismos.
Este algoritmo está desarrollado específicamente para la clasificación de datos espaciales y su visualización en mapas.
A continuación, vamos a realizar el mapa de la renta neta per cápita en España, a escala municipal, en 2019 con los intervalos realizados con Fisher-Jenks
Los mapas facetados se componen de muchos mapas dispuestos uno junto al otro, y a veces apilados verticalmente.
Las facetas permiten visualizar cómo cambian las relaciones espaciales con respecto a otra variable, como el tiempo.
Normalmente, todas las facetas individuales de un mapa facetado contienen los mismos datos geométricos repetidos varias veces, una por cada columna de los datos de atributos (este es el método de representación gráfica predeterminado para sfobjetos).
Un mapa insertado es un mapa más pequeño que se representa dentro o junto al mapa principal. Puede tener diversas funciones, como proporcionar contexto o acercar regiones no contiguas para facilitar su comparación.
También se pueden usar para enfocar un área más pequeña con más detalle o para cubrir la misma área que el mapa, pero representando un tema diferente.
Los mapas insertados también se utilizan para crear un mapa de áreas no contiguas. Probablemente, el ejemplo más común es el mapa de Estados Unidos, que incluye los Estados Unidos contiguos, Hawái y Alaska. En estos casos, es fundamental encontrar la mejor proyección para cada recuadro.
El resto de nuestros objetos, hawaii y alaska, ya tienen proyecciones adecuadas; por lo tanto, solo necesitamos crear dos mapas separados:
El mapa final se crea combinando, redimensionando y organizando estos tres mapas:
La dimensión temporal cobra cada vez más relevancia en el ámbito espacial, y por ello es importante representar en el tiempo los procesos espaciales.
Vamos a representar la temperatura mínima registrada en España del 6 al 10 de enero de 2021, durante la Borrasca Filomena.
Muestramos la localización de las estaciones que registran la temperatura en España.
A continuación realizamos el mapa correspondiente a las temperaturas dividido por diferentes dias.
# definición de intervalos
cortes <- c(-Inf, seq(-20, 20, 2.5), Inf)
colores <- hcl.colors(15, "PuOr", rev = TRUE)
tmin_sf_sptem <- tmin_sf |>
arrange(fecha, desc(tmin))
gr <- ggplot() +
geom_sf(data = esp2, fill = "grey95") +
geom_sf(data = tmin_sf, aes(color = tmin),
size=3, alpha= .7) +
facet_wrap(vars(fecha),ncol = 3) +
labs(color = "Temp. mím") +
scale_color_gradientn(
colours = colores,
breaks = cortes,
labels = ~str_c(. , "º"),
guide = "legend") +
theme_light()
Los mapas facetados permiten mostrar cómo cambian las distribuciones espaciales de las variables pero este enfoque presenta desventajas, que son:
Los mapas animados resuelven estos problemas. Esto se puede resolver con el paquete tmap (utilizaremos a continuación) o el gganimate() de ggplot2.
A continuación vamos a crear el nuestro gráfico animado:
Si bien los mapas estáticos y animados pueden revitalizar los conjuntos de datos geográficos, los mapas interactivos pueden llevarlos a un nuevo nivel.
El desarrollo de la informática ha propiciado también el desarrollo de la geocomputación, que está relacionada con los desarrollos webs y permite, entre otras cosas, la representación de mapas interactivos.
Estos mapas dinámicos, ampliables y desplazables son más informativos que los mapas estáticos y, además, constituyen una alternativa que puede proporcionar al usuario una experiencia diferente, además de una mayor interacción.
A través de la función tmap_mode("view") nos permite pasar de un mapa estático a un mapa interactivo.
world_coffee = left_join(world, coffee_data,
by = "name_long")
facets = c("coffee_production_2016", "coffee_production_2017")
tm_shape(world_coffee) +
tm_polygons(facets) +
tm_facets_wrap(nrow = 1, sync = TRUE)oberfranken = subset(franconia, district == "Oberfranken")
trails |>
st_transform(st_crs(oberfranken)) |>
st_intersection(oberfranken) |>
st_collection_extract("LINESTRING") |>
mapview(color = "red", lwd = 3, layer.name = "trails") +
mapview(franconia, zcol = "district") +
breweriesVamos a representar la versión interactiva del mapa de Snow. Para ello se utiliza la librería leaflet.
data("snow_deaths")
data("snow_pumps")
## crea mapa interactivo
snow_map <- leaflet() |>
setView(lng = -0.136, lat = 51.513, zoom = 16) |>
addTiles() |>
addMarkers( data = snow_deaths, ~long, ~lat,
clusterOptions = markerClusterOptions(),
group = "Deaths" ) |>
addMarkers(data = snow_pumps, ~long, ~lat,
group = "Pumps" )
Dominic Royé Climatólogo y educador de R con un gran compromiso con la comunidad. Su investigación se centra en la biometeorología, entre otros temas, y en la relación entre la salud humana y el medio ambiente atmosférico. Sus proyectos comunitarios valoran la colaboración entre las herramientas de código abierto, la alfabetización de datos y la graficación como una forma de generar poder e impulsar el cambio.
Jakub Nowosad Geógrafo computacional y trabaja entre la geocomputación y las ciencias ambientales. Su investigación se centra en el desarrollo y la aplicación de métodos espaciales para ampliar la comprensión de los procesos y patrones ambientales. Parte fundamental de su trabajo es crear, colaborar y mejorar software geocomputacional. Miembro activo de la comunidad #rspatial y coautor de los libros “Geocomputación con R” y “Geocomputación con Python”.




El proyecto consistió en poder alojar contenido sobre Geocomputación con R. Desde la publicación de dicho libro en 2019, la comunidad en torno al libro ha crecido e incluye una comunidad emergente llamada «geocompy» y el proyecto de libro de código abierto asociado, Geocomputación con Python. Quedó claro que el nombre «geocompr» ya no era apropiado para la naturaleza multilingüe del proyecto.

Preprocessing i Models Avançats d’Anàlisis de Dades (PMAAD)